#!/bin/bash

# 输出姓名和学号
echo "姓名：何臣飞"
echo "学号：24055060343"

# 创建students文件夹
mkdir -p students
cd students

# 读取scores.txt文件
while IFS= read -r line; do
    # 跳过空行
    if [[ -z "$line" ]]; then
        continue
    fi
    
    # 提取字段
    name=$(echo "$line" | awk '{print $1}')
    gender=$(echo "$line" | awk '{print $2}')
    id=$(echo "$line" | awk '{print $3}')
    
    # 提取科目和分数
    scores=$(echo "$line" | cut -d' ' -f4-)
    
    # 计算总分和平均分
    total=0
    count=0
    
    # 遍历分数字段（每两个字段为一组：科目 分数）
    rest_scores="$scores"
    while [[ -n "$rest_scores" ]]; do
        # 取前两个字段（科目和分数）
        subject=$(echo "$rest_scores" | awk '{print $1}')
        score=$(echo "$rest_scores" | awk '{print $2}')
        
        # 如果score是数字，则累加
        if [[ "$score" =~ ^[0-9]+$ ]]; then
            total=$((total + score))
            count=$((count + 1))
        fi
        
        # 移除已处理的两个字段
        rest_scores=$(echo "$rest_scores" | cut -d' ' -f3-)
    done
    
    # 计算平均分（保留1位小数）
    if [[ $count -gt 0 ]]; then
        average=$(echo "scale=1; $total / $count" | bc)
    else
        average=0
    fi
    
    # 创建学生文件并写入信息
    cat > "${name}.txt" << EOF
name: $name
id: $id
gender: $gender
scores: $scores
total: $total
average: $average
EOF
    
    echo "已创建文件: ${name}.txt"
    
done < ../scores.txt

echo "所有学生文件创建完成！"
